package com.handpay.framework.swiper;

import java.util.HashMap;

import com.handpay.framework.swiper.ic.IShowSelectApplication;

public interface ISwiperListener extends IShowSelectApplication
{
    int Swiper_Plug_In = 4,//插入
            Swiper_Plug_Off = 5,//拔出
            Swiper_Cancel = 1,//操作取消
            Swiper_OK = 0,//操作成功
            Swiper_Timeout = 2,//操作超时
            Swiper_DW_Trading = 6,// 降级交易
            Swiper_Error = 3,//操作失败
    		Swiper_Print = 7;//打印
    int Status_Connect = 0,//连接
            Status_Swipe = 1,//刷卡
            Status_InputPwdTrade = 2,//刷入密码交易
            Status_InputPwdRegister = 3,//输入密码注册/绑定
            Status_AffirmAmount = 4,//确认金额
            Status_EncyptData = 5,//加密数据
            Status_MAC = 6,//计算MAC
            Status_Four_Elements = 7,//四要素
    		Status_TEST = 8;
    String KeyDataIndex = "13";
    String MacDataIndex = "15";

    /**
     * 刷卡器低电量回调
     */
    void onBatteryLow();
    /**
     * 请求界面显示键盘
     */
    void onShownPwd();
    /**
     * 刷卡器状态及结果
     * @param status
     * @param result
     * @param pan 成功后，是卡明文
     * @param isDownlTrd 是否是降级交易
     */
    void onSwiperStatus(int status, int result, String pan, boolean isDownlTrd);
    
    /**
     * 刷卡器状态及结果（加密数据）
     * @param status
     * @param result
     * @param keyIndex
     * @param encData
     * @param plainData
     */
    void onSwiperStatus(int status, int result, String keyIndex, String encData, String plainData);
    
    /**
     * 刷卡器状态及结果（读取卡信息）
     * @param status
     * @param result
     * @param hmData
     */
    void onSwiperStatus(int status, int result, HashMap<String, String> hmData);
    
    /**
     * 刷卡器状态及结果（加密PIN）
     * @param status
     * @param result
     * @param encPwd
     */
    void onSwiperStatus(int status, int result, String encPwd);
    /**
     * 返回这个listener的唯一标示
     * @return
     */
    long getId();
    
}
